package org.dromara.school.service;

import org.dromara.school.domain.Discipline;
import org.dromara.school.domain.vo.DisciplineVo;
import org.dromara.school.domain.bo.DisciplineBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.github.yulichang.base.MPJBaseService;
import java.util.Collection;
import java.util.List;

/**
 * 学科管理Service接口
 *
 * @author Gjb
 * @date 2025-06-05
 */
public interface IDisciplineService extends MPJBaseService<Discipline> {

    /**
     * 查询学科管理
     */
    DisciplineVo queryById(Long disciplineId);

    /**
     * 查询学科管理列表
     */
    TableDataInfo<DisciplineVo> queryPageList(DisciplineBo bo, PageQuery pageQuery);

    /**
     * 查询学科管理列表
     */
    List<DisciplineVo> queryList(DisciplineBo bo);

    /**
     * 新增学科管理
     */
    Boolean insertByBo(DisciplineBo bo);

    /**
     * 修改学科管理
     */
    Boolean updateByBo(DisciplineBo bo);

    /**
     * 校验并批量删除学科管理信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    int insertDisciplineByExcel(Discipline discipline);

    List<Discipline> findDisciplineList(Discipline discipline);

    Discipline findDiscipline(Discipline discipline);
}
